Systems for setting a service provider which provides a service on a network, searching for or exploring the provided service on the network, and allowing the user to use the service provided by the service provider have recently been developed. These systems provide service by using Jini, UPnP (Universal Plug and Play), SLP (Service Location Protocol), or the like (Jini is a trademark of Sun Microsystems).
As a typical example, a service registration/search/use method using Jini will be described.
FIGS. 12, 13, 14, and 15 are views showing a method of providing a service by Jini. In FIGS. 12 to 15, reference numeral 2010 denotes a network which is represented by the Internet and controlled by the network protocol TCP/IP; 2020, a service provider which provides a service to another node connected to the network; 2030, a Lookup server which provides a Lookup service for registering and searching for a service; 2040, a client which uses a service; 2050, a proxy object executed as a proxy of the service provider on the client; and 2060, a service attribute representing the function of a service used to search for a service.
(1) Search of Lookup Service
As shown in FIG. 12, a server called the Lookup server 2030 in which services are registered operates on the network. This server provides service registration/search as a service (to be referred to as a Lookup service) to the service provider 2020 and the client 2040 serving as a service user.
A Discovery protocol as a network protocol used by the service provider 2020 and client 2040 in order to search for the Lookup server 2030 on the network is defined. The Discovery protocol is defined as a multicast protocol of TCP/IP, and broadcasted to a plurality of nodes on the network.
The Lookup server 2030 which has received a Discovery protocol message sends back a response message to the node which sent the message. The response message includes a class object having a built-in Java Interface (ServiceRegistrar) designed to function as the Lookup service for registering and searching for a service (Java is a trademark of Sun Microsystems).
The service provider 2020 and client 2040 which have received the response message extract the ServiceRegistrar built-in object from the response message, and use it as a proxy object of the Lookup service which provides service registration/search services.
(2) Service Registration
FIG. 13 shows a service registration method. The service provider 2020 uses a Lookup service proxy object to register a service provided by the service provider 2020 itself.
The Lookup service proxy object has a built-in register method as a service registration means. The register method receives as arguments the proxy object 2050 executed as a proxy object on the client side in order to provide a service to the client, and the service attributes 2060 which represent the functions of the service to be provided or the like. Then, the proxy object 2050 and service attributes 2060 are transmitted to the Lookup server 2030. The Lookup server 2030 holds and manages the proxy object 2050 and service attributes 2060 so as to provide them in accordance with a request from the client.
Note that a protocol for transmitting the proxy object 2050 and service attributes 2060 by the register method is not defined in Jini, and depends on the built-in ServiceRegistrar.
(3) Service Search
FIG. 14 shows a service search method. The client 2040 uses the Lookup service proxy object to search for and acquire a service to be used.
The Lookup service proxy object has a built-in lookup method as a service search/acquisition means. The lookup method receives as arguments a Java interface which defines a program interface for identifying the proxy object 2050 executed as a proxy object on the client side in order to provide a service and providing the function of the proxy object 2050, and a template object in which the attributes of a service to be used is built-in as a search condition. This template is transmitted to the Lookup server 2030. The Lookup server 2030 searches held/managed service proxy objects 2050 and service attributes 2060 for a proxy object 2050 which meets the transmitted template condition. The searched proxy object 2050 is sent back as the return value of the lookup method to the client 2040.
Note that a protocol for transmitting the template and proxy object 2050 by the lookup method is not defined in Jini, and depends on the built-in ServiceRegistrar.
(4) Service Use
FIG. 15 shows a service use method.
The client 2040 uses the proxy object 2050 to use a service. Jini defines a Java interface as a program/interface for using a service. The proxy object 2050 has the built-in Java interface. The client can receive a service by using the method provided by the interface.
How to build the defined interface into the proxy object 2050 depends on the service provider, and the Java interface built-in method does not influence the programming of the client. A service can be used regardless of the Lookup server 2030.
A problem to be solved by the present invention will be explained with reference to the example of FIGS. 16 and 17. In FIGS. 16 and 17, reference numeral 3010 denotes a client which receives a service; 3020, an A service provider which provides service A; 3030, an accounting service provider which provides an accounting service for paying fees for receiving a service; 3040, an A service proxy object serving as a proxy of the A service provider on the client 3010 for providing service A; and 3050, an accounting service proxy object 3050 serving as a proxy of the accounting service provider 3030 on the client 3010 in order to provide an accounting service.
In a normal mechanism, as shown in FIG. 16, the client 3010 acquires proxy objects for the A service and accounting service, i.e., the A service proxy object 3040 and accounting service proxy object 3050, and in exchanging information between services, must relay the information exchange, which increases the load on the client.
To solve this, according to the present invention as shown in FIG. 17, the accounting service proxy object 3050 is transferred to the A service provider 3020, personal information of the client 3010 is set via the A service provider 3020, and the A service provider 3020 directly uses the accounting service provided by the accounting service provider 3030.
In this configuration, the accounting service is received via the A service provider, which may cause leakage of client's personal information. Further, since the object which receives a service is different from the A service provider, the accounting service provider does not recognize that the A service provider 3020 uses the accounting service provider 3030 for the client 3010, but recognizes that the A service provider 3020 itself newly uses the accounting service provider 3030.